function [H,alto]=generaaches(Htot)
    [zeros polos k]=zpkdata(Htot);
    zeros=cell2mat(zeros);
    polos=cell2mat(polos);
    
    [matriz,G]=tf2sos(k*poly(zeros),poly(polos))
    
    largo=length(matriz(1,:));
    alto=length(matriz(:,1));
    
    diferencia=alto*2-length(zeros);
    
    for k=1:alto
       
       num=[matriz(k,1) 0 matriz(k,3)];
       den=[matriz(k,4) matriz(k,5) matriz(k,6)];
       
       
       if den(3)==0
           den(3)=den(2);
           den(2)=den(1);
           den(1)=0;
       end
          
       
       
       if num(3)==0
           if diferencia>1
               num(1)=0;
               num(3)=1;
               diferencia=diferencia-2;
           else if diferencia==1
                   num(1)=0;
                   num(2)=1;
                   diferencia=diferencia-1;
               end
           end
       end
       
       H(k)=nthroot(G,alto)*tf(num,den);
        
    end

end